home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / DOC / V1_TO_V2.TXT < prev   
Encoding:
Text File  |  1990-10-24  |  5.9 KB  |  174 lines

  1.  
  2. Hinweise zum Anpassen von Programmen, die mit dem System der Version 1
  3. (Compiler Version 3) erstellt wurden.
  4.  
  5.  
  6. Hier erfahren Sie, wie Sie Ihre alten Modula-Programme auf das neue System
  7. der Version 2 (Compiler Version 4) übertragen.
  8.  
  9. Sie sind leider gezwungen, alle ihre alten Module neu zu übersetzen.
  10. Machen Sie sich zuvor mit der Bedienung von 'ModRef' (Kap. 2.7) vertraut,
  11. das Programm kann Ihnen dabei eine große Hilfe sein.
  12.  
  13. Auf die meisten notwendigen Änderungen wird Sie der Compiler selbst hinweisen.
  14. Sie müssen dann nur die entsprechenden Korrekturen vornehmen. Meist müssen
  15. Sie eine Funktion nun aus einem anderen Modul importieren oder einen
  16. Parameter ergänzen.
  17.  
  18. Schwierig wird es, wenn Sie Funktionen der Megamax-Bibliothek in Assembler
  19. aufgerufen haben und sich dort nun Parameter geändert haben. In diesem
  20. Fall kann Ihnen der Compiler nicht helfen - Sie müssen die betroffenen
  21. Stellen selbst finden und anpassen.
  22.  
  23.  
  24. 1. Änderungen am Compiler von Version 3 auf Version 4.
  25.  
  26.  
  27. Folgende Änderungen werden vom Compiler nicht als Fehler angezeigt, müssen
  28. aber angepaßt werden, damit die Programme wie bisher laufen:
  29.  
  30. Bei eingeschaltetem Range-Check ($R+) wird nun nein Laufzeitfehler angezeigt,
  31. wenn bei einer CASE-Anweisung keine der Selektionen zutrifft und auch kein
  32. ELSE-Zweig besteht. Abhilfe: Entweder die Module mit $R- übersetzen
  33. ("-R" in der Direktiven-Zeile der Compiler-Box) oder leere ELSE-Zweige
  34. einfügen.
  35.  
  36. Ebenso werden nun Über-/Unterläufe bei INC und DEC bei $R+ erkannt.
  37. Normalerweise ist das sicher auch erwünscht, sodaß hierauf kaum geachtet
  38. werden muß.
  39.  
  40. Die Compiler der Version 3 kannten nur einen Real-Typ (64 Bit) namens REAL.
  41. Dieser heißt nun LONGREAL. Bei alten Programmen sollten Sie deshalb alle
  42. Vorkommen von REAL durch LONGREAL ersetzen. Analog muß auch FLOAT nach
  43. LFLOAT umbenannt werden!
  44.  
  45. SETs mit mehr als 8 Elementen werden nun anders angeordnet. Für Zugriffe auf
  46. externe Sets (Hardware-Bits, GEM-Sets) müssen die Set-Definitionen entweder
  47. angepaßt oder mit der Option $U- (s. Compiler-Direktiven) übersetzt
  48. werden. Vorsicht auch mit dem Operieren auf diesen Sets in Assembler!
  49.  
  50. Die Elemente von RECORDs werden nun immer in ihrer Deklarationsfolge
  51. abgelegt, auch wenn sie mit Kommata aufgezählt werden. Die alte,
  52. umgekehrte Reihenfolge können Sie mit der Direktive $T- wiedererlangen.
  53.  
  54.  
  55. Die weiteren Fälle werden vom Compiler erkannt, sodaß nach ihnen nicht
  56. extra gesucht werden braucht:
  57.  
  58. Was früher VAL war, heißt nun CAST. Wurde VAL benutzt, mußte es aus SYSTEM
  59. importiert werden. Da VAL nun nicht mehr in SYSTEM ist, wird der Compiler
  60. den Import sofort bemäkeln. Ersetzen Sie dann einfach alle Vorkommen
  61. von VAL durch CAST. In wenigen Fällen kann es vorkommen, daß auch CAST
  62. nicht mehr erlaubt ist - informieren Sie sich dann im Kapitel des Compiler
  63. über CAST.
  64.  
  65. Strings ungleicher Länge sind nicht mehr zuweisungskompatibel. Benutzen Sie
  66. Assign aus dem Strings-Modul!
  67.  
  68. Laufvariablen für FOR unterliegen nun einigen Einschränkungen. Mehr dazu
  69. im Kapitel zum Compiler. Abhilfe läßt sich meist durch Einführen einer
  70. neuen lokalen Variable leisten.
  71.  
  72. ASSEMBLER muß nun aus SYSTEM importiert werden.
  73.  
  74.  
  75. 2. Änderungen in der Bibliothek von Systemversion 1 auf Version 2.
  76.  
  77. Betrifft nur diejenigen, die das M2Init-Modul (für die Grundinitiali-
  78. sierung eines gelinkten Programms) selbst ersetzen: In Version 1 wurde
  79. in A0 ein Zeiger auf die base page übergeben - nun geschieht dies
  80. nur noch bei Accessories; ist der Wert Null, ist es kein Accessory-Start
  81. und man erhält den Zeiger auf die base page über die Adressierung 4(A7).
  82. Außerdem wird nun in A2 der Zeiger auf den PDB übergeben, dieser lag
  83. bisher immer bei einem konstanten Abstand vom Codebeginn aus.
  84.  
  85.  
  86. Modul Directory
  87.  
  88. Der Eintrag path bei DirQueryProc ist nun ein REF-Parameter. Wenn Sie
  89. DirQuery benutzen, muß demnach die angegebene Prozedur das Schlüsselwort
  90. "REF" beim path-Parameter erhalten.
  91.  
  92. Das Aufzählungselement writtenAndClosedAttr wurde in archiveAttr umbenannt.
  93.  
  94. Die Typen Drive und DriveSet befinden sich nun im Modul MOSGlobals.
  95.  
  96. Die Funktionen SplitPath und SplitName sind nun im Modul FileNames.
  97.  
  98.  
  99. Modul Loader
  100.  
  101. CallModule wurde um zwei Parameter erweitert: In env kann ein Zeiger auf
  102. ein selbstdefiniertes "Environment" übergeben werden; hier braucht
  103. dazu einfach NIL übergeben werden.
  104.  
  105. Der Parameter driver hat noch keine Funktion; für ihn ist NoDrivers
  106. aus dem Loader-Modul zu übergeben.
  107.  
  108.  
  109. Modul Clock
  110.  
  111. Die Typen Time und Date befinden sich nun im Modul MOSGlobals.
  112.  
  113.  
  114. Modul Paths
  115.  
  116. Die Definitionen von PathList und PathEntry stehen nun im Modul MOSGlobals.
  117.  
  118. Die Funktionen StdPaths, SetPaths, New- und PrevStdPaths wurden entfernt,
  119. stattdessen muß nun eine eigene Variable für die entsprechende Liste
  120. deklariert werden.
  121.  
  122. Der FileSelector für SearchFile wird nun im Modul PathEnv definiert.
  123.  
  124.  
  125. Modul KbdCtrl
  126.  
  127. Das Conterm-Bit muß nun von außen gesetzt
  128. werden, z.B. mit der dortigen Funktion ExtendedMode (TRUE).
  129.  
  130.  
  131. Modul XBIOS
  132.  
  133. SuperExec hat nun einen PROC- statt ADDRESS-Parameter. Damit entfällt
  134. das lästige Typwandeln, wenn eine Modula-Prozedur darüber aufgerufen
  135. werden soll.
  136.  
  137.  
  138. Modul GemEnv
  139.  
  140. Die Funktion SuspendedProcess wurde entfernt, da sie unbrauchbar war.
  141.  
  142. Die FileSelect-Routine befindet sich nun im Modul PathEnv.
  143.  
  144.  
  145. Modul Timeconvert
  146.  
  147. Die Funktion TimeToString hat nun einen optionalen Format-Parameter.
  148. Zur Anpassung ist hier ein Leerstring anzugeben.
  149.  
  150.  
  151. Modul VT52
  152.  
  153. Die Sequenzen sind nun Konstanten.
  154.  
  155.  
  156. Modul Calls
  157.  
  158. CallSystem und CallExternal wurden entfernt, stattdessen können nun
  159. CALLSYS und CALLEXT aus SYSTEM verwendet werden.
  160.  
  161.  
  162. Diverse Module
  163.  
  164. FileBase.ErrMsgField heißt nun MOSConfig.FileErrMsg;
  165. ErrBase.MsgField heißt nun MOSConfig.RuntimeErrMsg.
  166.  
  167. Die Funktionen WriteNum, ConvNum und NumToStr erlauben nun am Ende die
  168. Angabe des Füll-Zeichens. Zur Anpassung ist hier "0" anzugeben.
  169.  
  170. ReadReal liest nun den 4-Byte Datentyp REAL, für LONGREAL muß ReadLReal
  171. verwendet werden.
  172.  
  173. Ende.
  174.